<?php
session_cache_limiter("nocache");
//session_start();
require_once('../utilidades/ConexionBD.php');
require_once('MaeBarrio.php');

class MaeCliente {
    //--- Atributos
    private $id=0;
    private $fechaGrab;
    private $usuarioGrab;
    private $activo;
    private $codMaeCliente;
    private $barrio;
    private $nombreMaeCliente;
    private $telefono;
    private $direccion;
    private $eMail;
    private $logo;
    private $tagFiltro;
    
    //--- constructor
    function __construct(){
        $this->barrio=new MaeBarrio();
    } 
    
    //--- Metodos        
    public function selectThisByCodigo($codMaeCliente){
        //--- defino el codigo
        $this->codMaeCliente=$codMaeCliente;
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncMaeCliente\"('selectByCodigo',NULL,NULL,NULL,NULL,NULL,'" . $this->codMaeCliente . "',NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }

        while($row = pg_fetch_array($res)) 
         {
            $this->id               =$row["@id"];
            $this->fechaGrab        =$row["@fechaGrab"];
            $this->usuarioGrab      =$row["@usuarioGrab"];
            $this->activo           =$row["@activo"];
            $this->codMaeCliente    =$row["@codMaeCliente"];
            $this->nombreMaeCliente =$row["@nombreMaeCliente"];            
            $this->telefono         =$row["@telefono"];         
            $this->direccion        =$row["@direccion"];         
            $this->eMail            =$row["@eMail"];         
            $this->logo             =$row["@logo"];         
            $this->tagFiltro        =$row["@tagFiltro"];                     
            $this->barrio->setCodMaeBarrio($row["@codMaeBarrio"]);
            /*
            $error=$this->barrio->selectThisByCodigo($row["@codMaeBarrio"]);            
            if($error!=json_encode("")){
                return $error;
            }
            */
         }
         ConexionBD::get()->desconectarse();
         return json_encode("");
    }
    
    public static function selectById($id){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncMaeCliente\"('selectById',NULL,".$id.",NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        //--- cierro la conexion
        ConexionBD::get()->desconectarse();
         
        while($row = pg_fetch_array($res)) 
         {
            $barrio=new MaeBarrio();
            $error=$barrio->selectThisByCodigo($row["@codMaeBarrio"]);
            if($error!=json_encode("")){
                return $error;
            }
            
            $list=array(
                "id"               =>$row["@id"],
                "fechaGrab"        =>$row["@fechaGrab"],
                "usuarioGrab"      =>$row["@usuarioGrab"],
                "activo"           =>$row["@activo"],
                "codMaeCliente"    =>$row["@codMaeCliente"],
                "nombreMaeCliente" =>$row["@nombreMaeCliente"],
                "telefono"         =>$row["@telefono"], 
                "direccion"        =>$row["@direccion"],
                "eMail"            =>$row["@eMail"],     
                "logo"             =>$row["@logo"],     
                "tagFiltro"        =>$row["@tagFiltro"],
                "codMaeBarrio"     =>$row["@codMaeBarrio"],
                "nombreMaeBarrio"  =>$barrio->getNombreMaeBarrio()
            );
            return json_encode($list);                          
         }
         return json_encode("");
    }
    
    public static function selectAllHTMLSelectFormat(){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncMaeCliente\"('selectAll',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            echo str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()));                
            return null;
        }
        //--- debo armar una lista de objetos        
        $html="<option value=''>Seleccionar</option>";
        while($row = pg_fetch_array($res)) {
            $html=$html."<option value='".$row["@codMaeCliente"]."'>".$row["@nombreMaeCliente"]."</option>";        
        }
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        //-- retorno la lista de objetos
        return $html;        
    }

    public static function selectAllHTMLTableFormat($numPagina,$registrosPorPagina,$campoFiltroOrden,$valorFiltro){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncMaeCliente\"(
                'selectAll'
                ,'".$numPagina."|".$registrosPorPagina."|".$campoFiltroOrden."|".$valorFiltro."'
                ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            echo str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()));                
            return null;
        }
        
        //--- debo armar una lista de objetos        
        $html="";
        while($row = pg_fetch_array($res)) {
            $html=$html."<tr id='".$row["@id"]."'>";
            $html=$html."<td><a href='#' class='link_editar'>".$row["@codMaeCliente"]."</a></td>";        
            $html=$html."<td>".$row["@codMaeBarrio"]."</td>";        
            $html=$html."<td>".$row["@nombreMaeCliente"]."</td>";        
            $html=$html."<td>".$row["@telefono"]."</td>";        
            $html=$html."<td>".$row["@direccion"]."</td>";        
            $html=$html."<td>".$row["@eMail"]."</td>";        
            $html=$html."<td><b>".($row["@activo"]==="t" ? "<span style='color: rgb(14,51,22)'>SI</span>" : "<span style='color: rgb(184,35,35)'>NO</span>" ) ."</b></td>";        
            $html=$html."<td><img class='icon-remove' id='icon-remove' src='../recursos/imagenes/remove.png' title='Eliminar el Registro'></td>";        
            $html=$html."</tr>";                    
        }
        
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        //-- retorno la lista de objetos
        return $html;        
    }
    
    public static function update($codUsuario,$id,$activo,$codMaeCliente,$codMaeBarrio,$nombreMaeCliente,$telefono,$direccion,$eMail,$logo){
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncMaeCliente\"('update',NULL,".$id.",NULL,'".$codUsuario."','".(($activo) ? 'true' : 'false')."','".$codMaeCliente."','".$codMaeBarrio."','".$nombreMaeCliente."','".$telefono."','".$direccion."','".$eMail."',".($logo==="" || $logo===null ? "NULL" : "'".$logo."'" ).",NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }
    
    public static function insert($codUsuario,$activo,$codMaeCliente,$codMaeBarrio,$nombreMaeCliente,$telefono,$direccion,$eMail,$logo){
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncMaeCliente\"('insert',NULL,NULL,NULL,'".$codUsuario."','".(($activo) ? 'true' : 'false')."','".$codMaeCliente."','".$codMaeBarrio."','".$nombreMaeCliente."','".$telefono."','".$direccion."','".$eMail."',".($logo==="" || $logo===null  ? "NULL" : "'".$logo."'" ).",NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        ConexionBD::get()->desconectarse();        
        //--- debo retornar el id que se genero al hacer la insercion
        while($row = pg_fetch_array($res)) {
            return json_encode(array("id"=>$row["@id"]));
        }
        //-- retorno sino devolvio un id, retorno cero para que no se generen erroes en la vista
        return json_encode(array("id"=>"0"));
    }
    
    public static function delete($codUsuario,$id){
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }
        //---  cargo la informacion desde la BD
        $consulta="select * from \"FuncMaeCliente\"('delete',NULL,".$id.",NULL,'".$codUsuario."',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }
    
    public function getId() {
        return $this->id;
    }

    public function setId($id) {
        $this->id = $id;
    }

    public function getFechaGrab() {
        return $this->fechaGrab;
    }

    public function setFechaGrab($fechaGrab) {
        $this->fechaGrab = $fechaGrab;
    }

    public function getUsuarioGrab() {
        return $this->usuarioGrab;
    }

    public function setUsuarioGrab($usuarioGrab) {
        $this->usuarioGrab = $usuarioGrab;
    }

    public function getActivo() {
        return $this->activo;
    }

    public function setActivo($activo) {
        $this->activo = $activo;
    }

    public function getCodMaeCliente() {
        return $this->codMaeCliente;
    }

    public function setCodMaeCliente($codMaeCliente) {
        $this->codMaeCliente = $codMaeCliente;
    }

    public function getBarrio() {
        return $this->barrio;
    }

    public function setBarrio($barrio) {
        $this->barrio = $barrio;
    }

    public function getNombreMaeCliente() {
        return $this->nombreMaeCliente;
    }

    public function setNombreMaeCliente($nombreMaeCliente) {
        $this->nombreMaeCliente = $nombreMaeCliente;
    }

    public function getTelefono() {
        return $this->telefono;
    }

    public function setTelefono($telefono) {
        $this->telefono = $telefono;
    }

    public function getDireccion() {
        return $this->direccion;
    }

    public function setDireccion($direccion) {
        $this->direccion = $direccion;
    }

    public function getEMail() {
        return $this->eMail;
    }

    public function setEMail($eMail) {
        $this->eMail = $eMail;
    }

    public function getTagFiltro() {
        return $this->tagFiltro;
    }
    public function getLogo() {
        return $this->logo;
    }

    public function setLogo($logo) {
        $this->logo = $logo;
    }


}

?>
